package Dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import Bean.Users_Bean;
import DB.DB_DriverFactory;

public class UseInfoManagerDao {
	/**
	 * 保存用户信息
	 * @param userB
	 * @return
	 */
	public int saveUseInfo(Users_Bean userB) {
		int i = 0;
		String strSQL="insert into EDU_USERS(USER_NAME,USER_PSW,USER_AGE,USER_TEL,USER_SEX,USER_ADDRESS) "
				+ "values(?,?,?,?,?,?)";
		i=DB_DriverFactory.getDB_DriverInstance().
				update(strSQL, new Object[]
						{userB.getUser_name(),userB.getUser_psw(),userB.getUser_age(),userB.getUser_tel(),userB.getUser_sex(),userB.getUser_address()});
		return i;
	}
	/**
	 * 获取显示所有的用户信息
	 * @return 用户信息集
	 */
	public List<Users_Bean> showAllUseInfo(){
		String strSQL="select * from EDU_USERS ORDER BY user_id DESC";
	    List<Users_Bean> lst=DB_DriverFactory.getDB_DriverInstance().
	    query01(strSQL, new BeanListHandler<Users_Bean>(Users_Bean.class));
		return lst;	
	}
	
	/**
	 * 获取个人信息--通过用户id
	 * @return
	 */
	public List<Users_Bean> showSimpleUseInfo(){
		String strSQL="";
		List<Users_Bean> lst=DB_DriverFactory.getDB_DriverInstance().
				query01(strSQL, new BeanListHandler<Users_Bean>(Users_Bean.class), new Object[]{});
		return lst;
	}
	
	/**
	 * 按条件进行模糊查询
	 * @param userB 查询条件
	 * @return 查询结果集
	 */
	public List doQueryByParams(Users_Bean userB){
		//根据条件模糊查询，若没有输入查询条件，则进行所有用户信息的全查
		StringBuilder sbuSQL=new StringBuilder("select * from EDU_USERS where 1=1");
		
		//根据需求动态拼写查询语句和参数---lstParam存放 ? 所代表的内容
		List<Object> lstParam=new ArrayList<Object>();
		
		if(userB.getUser_name()!=null && userB.getUser_name().trim().equals("")){
			//姓名查询
			sbuSQL.append("and USER_NAME like ?");
			lstParam.add("%"+userB.getUser_name()+"%");
		}
		if(userB.getUser_sex()!=null && userB.getUser_sex().trim().equals("")){
			//性别查询
			sbuSQL.append("and USER_SEX= ?");
			lstParam.add(userB.getUser_sex());
		}
		if(userB.getUser_age()>0){
			//年龄查询
			sbuSQL.append("and USER_AGE >=?");
			lstParam.add(userB.getUser_age());
		}
		if(userB.getUser_age2()>0){
			//年龄查询
			sbuSQL.append("and USER_AGE <=?");
			lstParam.add(userB.getUser_age2());
		}
		if(userB.getUser_address()!=null && userB.getUser_address().trim().equals("")){
			//地址查询
			sbuSQL.append("and USER_ADDRESS like ?");
			lstParam.add("%"+userB.getUser_address()+"%");
		}
		
		//进行倒序输出
		sbuSQL.append("ORDER BY user_id DESC");
		
		//进行查询
		List lstUse=DB_DriverFactory.getDB_DriverInstance().
				query01(sbuSQL.toString(), new BeanListHandler<Users_Bean>(Users_Bean.class), lstParam.toArray());
		return lstUse;
	}
	
	/**
	 * 通过用户id主键获取用户信息
	 * @param strUid  id主键
	 * @return 用户信息
	 */
	public Users_Bean getUseInfoById(String strUid) {
		String strSQL="select * from EDU_USERS where user_id=?";
		Users_Bean userB=DB_DriverFactory.getDB_DriverInstance().
				query01(strSQL, new BeanHandler<Users_Bean>(Users_Bean.class), new Object[]{strUid});
		return userB;
	}
	
	
}
